package visiopuce.action;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import org.eclipse.jface.action.Action;

import visiopuce.HibernateUtil;
import visiopuce.ICommandIds;
import visiopuce.objets.Analyse;
import visiopuce.objets.Biomedecine;
import visiopuce.objets.Personne;
import visiopuce.objets.PersonnePhenotype;
import visiopuce.objets.Prelevement;
import visiopuce.objets.Resultat;
import visiopuce.objets.TypeAnalyse;
import visiopuce.objets.TypePrelevement;
import visiopuce.objets.TypeRendu;
import visiopuce.objets.Utilisateur;
import visiopuce.service.AnalyseServiceImpl;
import visiopuce.service.PersonneServiceImpl;
import visiopuce.service.PrelevementServiceImpl;
import visiopuce.service.ReferentielService;
import visiopuce.service.ReferentielServiceImpl;
import visiopuce.service.ResultatServiceImpl;
import visiopuce.service.UtilisateurService;
import visiopuce.service.UtilisateurServiceImpl;

public class ParserBaseSylvieAction extends Action {

	ReferentielService referentielService = ReferentielServiceImpl.getInstance();
	UtilisateurService utilisateurService = UtilisateurServiceImpl.getInstance();
	// SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
	SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
	private HashMap<Integer, Utilisateur> numPresc = new HashMap<Integer, Utilisateur>();
	private HashMap<Integer, Utilisateur> numAnnotateur = new HashMap<Integer, Utilisateur>();
	private HashMap<Integer, Utilisateur> numSignat = new HashMap<Integer, Utilisateur>();
	private HashMap<Integer, Float> terme = new HashMap<Integer, Float>();
	private HashMap<Integer, Biomedecine> biomed = new HashMap<Integer, Biomedecine>();
	private Date dateRecu;
	private String nom;
	private String prenom;
	private int ufPresc;
	private Date dateNaissance;
	private String indication;
	private Date dateRendu;
	int nbLigne = 0;

	public ParserBaseSylvieAction(String text) {
		super(text);
		// The id is used to refer to the action in a menu or toolbar
		setId(ICommandIds.CMD_PARSER_BASE_Sylvie);
		// Associate the action with a pre-defined command, to allow key
		// bindings.
		setActionDefinitionId(ICommandIds.CMD_PARSER_BASE_Sylvie);
		setText("Parser les fichiers");
		setToolTipText("Paser base Sylvie");
		setImageDescriptor(visiopuce.Activator.getImageDescriptor("/icons/switch-user.png"));
	}

	public void run() {

		String fichierPersonne = "patients.csv";
		Biomedecine indicInconnue = ReferentielServiceImpl.getInstance().getTypeIndicationById(36);

		// String fichier = "dpiSF.csv";

		InputStream ips;
		try {
			ips = new FileInputStream("C:/Users/Manon/Documents/workspace visiopuce2/visiopuce/" + fichierPersonne);

			InputStreamReader ipsr = new InputStreamReader(ips, "utf8");
			BufferedReader br = new BufferedReader(ipsr);
			String ligne;
			int nbLigne = 0;
			Biomedecine bm = new Biomedecine();
			bm.setIdBiomedecine(36);
			while ((ligne = br.readLine()) != null) {
				if (nbLigne > 0) {
					TypePrelevement typePrelevement = null;
					TypeRendu typeRendu = null;
					List<Integer> phenos = new ArrayList<Integer>();
					String phenotype = "";
					String commentairePrel = "";
					String conclusion = "";
					int secteur = 2;
					boolean DPI = false;
					boolean IMG = false;
					boolean MFIU = false;
					// System.out.println(ligne);
					String[] tableau = ligne.split(";");
					if (tableau.length > 2) {

						String numeroDossier = "";
						if (tableau[0].substring(0, 2).equals("13") || tableau[0].substring(0, 2).equals("14")) {
							numeroDossier = tableau[0].substring(2, 5) + "-" + tableau[0].substring(5);
						} else {
							numeroDossier = tableau[0].substring(0, 3) + "-" + tableau[0].substring(3);
						}
						try {
							dateRecu = formatter.parse(tableau[1]);
						} catch (ParseException e) {
							System.out.println("erreur de format de date de reçu: " + tableau[1] + " ligne : " + ligne);
						}
						nom = tableau[2].trim().toUpperCase();
						prenom = tableau[3].trim().toUpperCase();
						try {
							dateNaissance = formatter.parse(tableau[4]);
						} catch (ParseException e) {
							System.out.println("erreur de format de date de naissance: " + tableau[4] + " ligne : " + ligne);
						}

						if (tableau[5].equals("Autre")) {
							ufPresc = 0;
						} else if (tableau[5].equals("CECOS")) {
							ufPresc = 4083;
						} else if (tableau[5].equals("DPI")) {
							ufPresc = 4058;
							DPI = true;
						} else if (tableau[5].equals("Endocrino adulte")) {
							ufPresc = 4221;
						} else if (tableau[5].equals("Endocrino pédiatrie")) {
							ufPresc = 1257;
						} else if (tableau[5].equals("FOETOPATHOLOGIE") || tableau[5].equals("Foetopathologie")) {
							secteur = 4;
							ufPresc = 4271;
						} else if (tableau[5].equals("Génétique")) {
							ufPresc = 4270;
						} else if (tableau[5].equals("Maternite")) {
							ufPresc = 4305;
						} else if (tableau[5].equals("Neuropédiatrie")) {
							ufPresc = 0640;
						} else if (tableau[5].equals("Pediatrie")) {
							ufPresc = 4231;
						} else if (tableau[5].equals("REA PED")) {
							ufPresc = 4204;
						} else if (tableau[5].equals("Rea pediatrique")) {
							ufPresc = 4204;
						} else {
							System.out.println("pas de service : " + tableau[5] + " ligne : " + ligne);
						}

						if (tableau[6].equals("Autre")) {
							bm.setIdBiomedecine(21);
						} else if (tableau[6].equals("Autisme/TEDNS")) {
							bm.setIdBiomedecine(21);
							phenos.add(1);
							phenos.add(18);
						} else if (tableau[6].contains("DPI")) {
							bm.setIdBiomedecine(21);
							DPI = true;
							commentairePrel += " " + tableau[6];
						} else if (tableau[6].equals("Autre: transexualisme") || tableau[6].equals("Autre : TRANSSEXUALISME")) {
							bm.setIdBiomedecine(21);
							phenotype += "transexualisme";
						} else if (tableau[6].equals("Complément Puce")) {
							bm.setIdBiomedecine(21);
							commentairePrel += " " + tableau[6];
						} else if (tableau[6].equals("Conservation culot")) {
							bm.setIdBiomedecine(26);
							commentairePrel += " " + tableau[6];
						} else if (tableau[6].equals("Détermination du sexe")) {
							bm.setIdBiomedecine(10);
							commentairePrel += " " + tableau[6];
						} else if (tableau[6].equals("Don de Sperme")) {
							bm.setIdBiomedecine(21);
							commentairePrel += " " + tableau[6];
						} else if (tableau[6].equals("Dysmorphie faciale/RPM/Malformation")) {
							bm.setIdBiomedecine(17);
							phenos.add(57);
							phenos.add(3);
							phenotype += "Malformation";
						} else if (tableau[6].equals("Dysmorphie/Malformation")) {
							bm.setIdBiomedecine(17);
							phenos.add(57);
							phenotype += "Malformation";
						} else if (tableau[6].equals("Dysmorphie/RPM")) {
							bm.setIdBiomedecine(17);
							phenos.add(57);
							phenos.add(3);
						} else if (tableau[6].equals("Enquête familiale")) {
							bm.setIdBiomedecine(20);
							commentairePrel += " " + tableau[6];
						} else if (tableau[6].equals("hygroma cervical")) {
							bm.setIdBiomedecine(9);
							phenotype += " " + tableau[6];
						} else if (tableau[6].equals("Hypotonie")) {
							phenos.add(9);
							bm.setIdBiomedecine(21);
						} else if (tableau[6].equals("IMG")) {
							IMG = true;
							bm.setIdBiomedecine(10);
						} else if (tableau[6].equals("Malformation(s)")) {
							phenotype += " " + tableau[6];
							bm.setIdBiomedecine(16);
						} else if (tableau[6].equals("Malformation(s)/enquête familiale")) {
							phenotype += "Malformation(s)";
							commentairePrel += "enquête familiale";
							bm.setIdBiomedecine(20);
						} else if (tableau[6].equals("MFIU")) {
							MFIU = true;
							bm.setIdBiomedecine(10);
						} else if (tableau[6].equals("Retard mental")) {
							phenos.add(2);
							bm.setIdBiomedecine(15);
						} else if (tableau[6].equals("Retard mental/RPM")) {
							phenos.add(2);
							phenos.add(3);
							bm.setIdBiomedecine(15);
						} else if (tableau[6].equals("RPM/Malformation")) {
							phenos.add(3);
							phenotype += "Malformation";
							bm.setIdBiomedecine(17);
						} else if (tableau[6].equals("SAE")) {
							phenotype += "Signes d'appel écho";
							bm.setIdBiomedecine(9);
						} else if (tableau[6].equals("Suspicion d'anomalie gonosomique")) {
							phenotype += tableau[6];
							bm.setIdBiomedecine(21);
						} else if (tableau[6].equals("Trouble de la reproduction")) {
							phenotype += tableau[6];
							bm.setIdBiomedecine(18);
						} else if (tableau[6].equals("Autre  : etude translocation")) {
							commentairePrel += tableau[6];
							bm.setIdBiomedecine(21);
						} else if (tableau[6].equals("Autre : contrôle caryotype médullaire")) {
							commentairePrel += tableau[6];
							bm.setIdBiomedecine(21);
						} else if (tableau[6].equals("Autre: genodermatose")) {
							commentairePrel += tableau[6];
							bm.setIdBiomedecine(21);
						} else if (tableau[6].equals("Détermination du sexe")) {
							commentairePrel += tableau[6];
							bm.setIdBiomedecine(21);
						} else {
							System.out.println("pas d'indication : " + tableau[6] + " ligne : " + ligne);
						}
						int typeprel = 0;
						if (tableau.length > 7) {
							if (tableau[7].equals("fibro")) {
								typeprel = 5;
							} else if (tableau[7].equals("Autre")) {
								typeprel = 10;
							} else if (tableau[7].equals("Autre/Empreinte")) {
								typeprel = 15;
							} else if (tableau[7].equals("culot urinaire")) {
								typeprel = 20;
							} else if (tableau[7].equals("D")) {
								typeprel = 10;
							} else if (tableau[7].contains("Empreinte") || tableau[7].contains("empreinte")) {
								typeprel = 15;
							} else if (tableau[7].equals("empreinte poumon")) {
								typeprel = 15;
								commentairePrel += "Prélèvement : empreinte de poumon";
							} else if (tableau[7].equals("frottis jugal") || tableau[7].equals("Frottis jugal")) {
								typeprel = 14;
							} else if (tableau[7].equals("Lignée Cellulaire")) {
								typeprel = 10;
							} else if (tableau[7].equals("placenta")) {
								typeprel = 17;
							} else if (tableau[7].equals("S")) {
								typeprel = 1;
							} else if (tableau[7].contains("sang")) {
								typeprel = 1;
							} else if (tableau[7].equals("VC")) {
								typeprel = 4;
							} else {
								System.out.println("pas de type de prélèvement : " + tableau[7] + " ligne : " + ligne);
								typeprel = 10;
							}
						} else {
							typeprel = 10;
						}
						if (typeprel != 0) {
							typePrelevement = ReferentielServiceImpl.getInstance().getTypePrelevementById(typeprel);
						} else {

						}

						String resultat = "Non rendu";
						if (tableau.length > 8) {
							if (tableau[8].contains("Anomalie déséquilibrée") || tableau[8].equals("Anomalie déséquilibrée") || tableau[8].trim().equals("Anomalie déséquilibrée")) {
								resultat = "Anormal déséquilibré";
							} else if (tableau[8].equals("Anomalie équilibrée") || tableau[8].equals("Anormalie équilibrée")) {
								resultat = "Anormal équilibré";
							} else if (tableau[8].equals("Culot Cellulaire")) {
								commentairePrel += " culot cellulaire";
							} else if (tableau[8].equals("Echec")) {
								resultat = "Echec";
							} else if (tableau[8].equals("ENVOI")) {
								commentairePrel += " envoi";
							} else if (tableau[8].equals("Non") || tableau[8].equals("non")) {
								resultat = "Non rendu";
							} else if (tableau[8].equals("non réalisé") || tableau[8].equals("Non Réalisé") || tableau[8].equals("Non réalisé")) {
								resultat = "Annulé";
							} else if (tableau[8].equals("Normal")) {
								resultat = "Normal";
							} else {
								System.out.println("pas de résulat : " + tableau[8] + " ligne : " + ligne);
							}
						}
						boolean isFish = false;
						int nbFish = 0;
						if (tableau.length > 10) {
							if (tableau[9].contains("oui") || tableau[9].contains("Oui") || !tableau[10].isEmpty()|| !tableau[11].isEmpty()) {
								isFish = true;
								if (tableau.length > 10) {
									if (!tableau[10].isEmpty()) {
										nbFish = Integer.parseInt(tableau[10]);
									}
								}
							}
						}
						String nomSonde = null;
						if (tableau.length > 11) {
							if (!tableau[11].isEmpty()) {
								nomSonde = tableau[11];
							}
						}

						if (tableau.length > 12) {
							if (tableau[12].equals("Normal")) {
								resultat = "Normal";
							} else if (tableau[12].equals("Anomalie déséquilibrée") || tableau[12].equals("Anomalie déséquilibrée") || tableau[12].trim().equals("Anomalie déséquilibrée")) {
								resultat = "Anormal déséquilibré";
							} else if (tableau[12].equals("Anomalie équilibrée")) {
								resultat = "Anormal équilibré";
							} else if (tableau[12].equals("Normal")) {
								resultat = "Normal";
							} else if (tableau[12].equals("O")) {
							} else if (!tableau[12].isEmpty()) {
								System.out.println("pas de type d'anomalie FISH: " + tableau[12] + " ligne : " + ligne);
							}
						}

						int typerendu = 0;
						if (tableau.length > 13) {
							if (tableau[13].toLowerCase().equals("délétion")) {
								typerendu = 10;
							} else if (tableau[13].toLowerCase().equals("délétion/duplication")) {
								typerendu = 27;
							} else if (tableau[13].toLowerCase().equals("duplication")) {
								typerendu = 11;
							} else if (tableau[13].toLowerCase().equals("image multiradiale")) {
								conclusion += "image multiradiale";
							} else if (tableau[13].toLowerCase().equals("insertion")) {
								typerendu = 26;
							} else if (tableau[13].toLowerCase().equals("inversion")) {
								typerendu = 12;
							} else if (tableau[13].toLowerCase().equals("inversion sexe")) {
								conclusion += "inversion sexe";
							} else if (tableau[13].toLowerCase().equals("marqueur")) {
								typerendu = 13;
							} else if (tableau[13].toLowerCase().equals("nombre/structure")) {
								conclusion += "nombre/structure";
							} else if (tableau[13].toLowerCase().equals("isochromosome/nombre")) {
								conclusion += "Isochromosome/Nombre";
								typerendu = 16;
							} else if (tableau[13].toLowerCase().equals("marqueur")) {
								typerendu = 13;
							} else if (tableau[13].toLowerCase().equals("nombre")) {
								conclusion += "nombre";
							} else if (tableau[13].toLowerCase().equals("translocation")) {
								typerendu = 22;
							} else if (tableau[13].toLowerCase().equals("translocation dequilibree")) {
								typerendu = 20;
							} else if (tableau[13].toLowerCase().equals("translocation desequilibree")) {
								typerendu = 20;
							} else if (tableau[13].toLowerCase().contains("translocation equilibree")) {
								typerendu = 22;
							} else if (tableau[13].toLowerCase().equals("translocation robertsonnienne")) {
								typerendu = 21;
							} else if (!tableau[13].isEmpty()) {
								System.out.println("pas de type d'anomalie 2 FISH: " + tableau[13] + " ligne : " + ligne);
							}
						}
						String cassure = "";
						if (tableau.length > 14) {

							if (!tableau[14].isEmpty()) {
								cassure = tableau[14];
							}
						}
						String tablChr = null;
						if (tableau.length > 15) {

							if (!tableau[15].isEmpty()) {
								if (tableau[15].equals("triploidie")) {
									typerendu = 5;
								} else {
									tablChr = tableau[15].replaceAll("/", "|");

								}
							}
						}
						if (tableau.length > 16 && !tableau[16].isEmpty()) {
							try {
								dateRendu = formatter.parse(tableau[16]);
							} catch (ParseException e) {
								System.out.println("erreur de format de date de rendu: " + tableau[16] + " ligne : " + ligne);
							}
						}

						// /début du remplissage des objets :
						Prelevement prel = PrelevementServiceImpl.getInstance().getPrelevementByNumero(numeroDossier);
						Personne p = null;
						if (prel == null) {
							prel = new Prelevement();
							prel.setIdPrelevement(0);
							prel.setNumeroPrelevement(numeroDossier);
							p = PersonneServiceImpl.getInstance().getPersonneByNomPrenomDateNaissance(nom, prenom, dateNaissance);
						} else {
							p = PersonneServiceImpl.getInstance().getPersonneById(prel.getPersonne().getIdPersonne());
						}
						if (p == null) {
							p = new Personne();
							p.setIdPersonne(0);
							p.setNom(nom);
							p.setPrenom(prenom);
							p.setDateNaissance(dateNaissance);
							p.setSexe("NA");
						}
						if (p.getPhenotype() != null) {
							p.setPhenotype(p.getPhenotype() + phenotype);
						} else {
							p.setPhenotype(phenotype);
						}
						if (commentairePrel != null && !commentairePrel.isEmpty()) {
							p.setCommentaires(p.getCommentaires() + "\n" + numeroDossier + ":" + commentairePrel);
						}
						p.setPatient(true);
						if (p.getType() == null) {
							if (IMG) {
								p.setType("IMG");
							} else {
								if (MFIU) {
									p.setType("MFIU");
								} else {
									p.setType("NA");
								}
							}
						}
						if (p.getNumSejour() == null) {
							p.setNumSejour("Non rentré");
						}
						if (typerendu != 0) {
							typeRendu = ReferentielServiceImpl.getInstance().getTypeRenduById(typerendu);
						}

						HibernateUtil.beginTransaction();
						HibernateUtil.getSession().saveOrUpdate(p);
						HibernateUtil.commitTransaction();

						for (Integer pheno : phenos) {
							PersonnePhenotype pf = new PersonnePhenotype();
							pf.setPersonne(PersonneServiceImpl.getInstance().getPersonneByNomPrenomDateNaissance(nom, prenom, dateNaissance));
							pf.setPhenotype(ReferentielServiceImpl.getInstance().getPhentypeById(pheno));
							if (pf.getPersonne() != null && pf.getPhenotype() != null) {
								HibernateUtil.beginTransaction();
								HibernateUtil.getSession().saveOrUpdate(pf);
								HibernateUtil.commitTransaction();
							}
						}

						if (prel.getDateReception() == null) {
							prel.setDateReception(dateRecu);
						}
						if (prel.getDatePrelevement() == null) {
							prel.setDatePrelevement(dateRecu);
						}
						if (DPI) {
							prel.setDpi(true);
						}
						if (prel.getPersonne() == null) {
							prel.setPersonne(PersonneServiceImpl.getInstance().getPersonneByNomPrenomDateNaissance(nom, prenom, dateNaissance));
						}
						if (prel.getIndication() == null) {
							prel.setIndication(bm);
						}
						if (prel.getSecteur() == null && secteur != 0) {
							if (prenom.contains("FOETUS") || prenom.contains("FŒTUS")) {
								secteur = 4;
							}
							prel.setSecteur(ReferentielServiceImpl.getInstance().getSecteurByid("" + secteur));
						}
						if (prel.getTypePrelevement() == null || prel.getTypePrelevement().getLibelle().equals("inconnue")) {
							prel.setTypePrelevement(typePrelevement);
						}
						prel.setRecherche(false);
						HibernateUtil.beginTransaction();
						HibernateUtil.getSession().saveOrUpdate(prel);
						HibernateUtil.commitTransaction();

						if (tableau.length>8 && !tableau[8].equals("Culot Cellulaire") && !tableau[8].equals("ENVOI")) {

							TypeAnalyse tac = new TypeAnalyse();
							tac.setIdTypeAnalyse(1);
							Analyse analyseCaryo = AnalyseServiceImpl.getInstance().getAnalyseByTypeAndNumeroPrelevement(1, numeroDossier);
							if (analyseCaryo == null) {
								analyseCaryo = new Analyse();
								analyseCaryo.setIdAnalyse(0);

							}
							analyseCaryo.setPrelevement(PrelevementServiceImpl.getInstance().getPrelevementByNumero(numeroDossier));
							analyseCaryo.setTypeAnalyse(tac);
							if (analyseCaryo.getUfExec() == null || analyseCaryo.getUfExec() == 0) {
								analyseCaryo.setUfExec(4076);
							}
							if (analyseCaryo.getUfPresc() == null || analyseCaryo.getUfPresc() == 0) {
								analyseCaryo.setUfPresc(ufPresc);
							}
							analyseCaryo.setUrgent(false);
							HibernateUtil.beginTransaction();
							HibernateUtil.getSession().saveOrUpdate(analyseCaryo);
							HibernateUtil.commitTransaction();

							Resultat resulatCaryo = null;
							List<Resultat> resulatCaryos = ResultatServiceImpl.getInstance().findAllByidAnalyse(analyseCaryo.getIdAnalyse());
							if (resulatCaryos == null || resulatCaryos.size() == 0) {
								resulatCaryo = new Resultat();
								resulatCaryo.setIdResultat(0);

							} else {
								resulatCaryo = resulatCaryos.get(0);
							}
							if (resulatCaryo.getDateRendu() == null) {
								resulatCaryo.setDateRendu(dateRendu);
							}
							resulatCaryo.setAnalyse(AnalyseServiceImpl.getInstance().getAnalyseByTypeAndNumeroPrelevement(1, numeroDossier));
							resulatCaryo.setHerite("NA");
							resulatCaryo.setChromosomes(tablChr);
							resulatCaryo.setResultat(resultat);
							resulatCaryo.setTypeRendu(typeRendu);
							resulatCaryo.setCommentaire(conclusion);
							HibernateUtil.beginTransaction();
							HibernateUtil.getSession().saveOrUpdate(resulatCaryo);
							HibernateUtil.commitTransaction();

							if (isFish) {
								TypeAnalyse taf = new TypeAnalyse();
								taf.setIdTypeAnalyse(8);
								Analyse analyseFish = AnalyseServiceImpl.getInstance().getAnalyseByTypeAndNumeroPrelevement(8, numeroDossier);
								if (analyseFish == null) {
									analyseFish = new Analyse();
									analyseFish.setIdAnalyse(0);

								}
								analyseFish.setPrelevement(PrelevementServiceImpl.getInstance().getPrelevementByNumero(numeroDossier));
								analyseFish.setTypeAnalyse(taf);
								if (analyseFish.getUfExec() == null || analyseFish.getUfExec() == 0) {
									analyseFish.setUfExec(4076);
								}
								if (analyseFish.getUfPresc() == null || analyseFish.getUfPresc() == 0) {
									analyseFish.setUfPresc(ufPresc);
								}
								analyseFish.setUrgent(false);
								HibernateUtil.beginTransaction();
								HibernateUtil.getSession().saveOrUpdate(analyseFish);
								HibernateUtil.commitTransaction();

								Resultat resulatFish = null;
								List<Resultat> resulatFishs = ResultatServiceImpl.getInstance().findAllByidAnalyse(analyseFish.getIdAnalyse());
								if (resulatFishs == null || resulatFishs.size() == 0) {
									resulatFish = new Resultat();
									resulatFish.setIdResultat(0);

								} else {
									resulatFish = resulatFishs.get(0);
								}
								Analyse ana = AnalyseServiceImpl.getInstance().getAnalyseByTypeAndNumeroPrelevement(8, numeroDossier);
								if (ana != null) {
									resulatFish.setAnalyse(ana);
									resulatFish.setChromosomes(tablChr);
									resulatFish.setResultat(resultat);
									resulatFish.setHerite("NA");
									resulatFish.setTypeRendu(typeRendu);
									resulatFish.setCommentaire("Nombre de sonde FISH : " + nbFish + "\n" + " Sondes utilisées : " + nomSonde + " Points de cassure : " + cassure+ " "+ conclusion);
									HibernateUtil.beginTransaction();
									HibernateUtil.getSession().saveOrUpdate(resulatFish);
									HibernateUtil.commitTransaction();
								}
							}
						}
					}
				}
				nbLigne++;
			}

		}

		catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}